<?php
class Ranking_redis extends Common_redis_model{
	public function __construct(array $params = array()) 
	{
		parent::__construct();
		$this->params=$params;
	}

	/**
	* 函数功能介绍：获取排行榜数据
	* REDIS KEY: damigm:ranking
	* 创建人: 	Zhou Hailong
	* 创建时间: 2016-01-27 16:30
	* 最后修改人：
	* 最后修改时间：
	*/
	function get_ranking_data($type = 'anchor', $cycle = 'day', $limit = 0, $offset = 10) {
		$lists = $score = array();
		$key = $this->params['channel']."$type:$cycle";
		
		$star 	= !empty($limit)? $limit * $offset : $limit;
		$end	= !empty($offset) ? $offset * ($limit +1)  : $offset;
		$count = (int) $this->redis->zSize($key . ":list");

		if( !empty($count)) {
			$score	= $this->redis->zRevRange($key . ":list", $star, ($end-1), FALSE);
			if(!empty($score)) {
				foreach($score as $k => $val) {
					$lists[] = $this->redis->hgetall($key . ":" . $val);
				}
			}
		}
		return $lists;
	}

	/**
	* 函数功能介绍：保存$cycle送出卷数最多的用户排行榜的redis数据
	* @ $cycle 参数说明： day:当日排行(1小时更新一次), week:上周排行(1周更新一次), month:上月排行(1月更新一次), '' or all 总排行(1小时更新一次)
	* REDIS KEY: damigm:ranking:send_coupon_max
	* 创建人: 	Zhou Hailong
	* 创建时间: 2016-01-27 12:22
	* 最后修改人：
	* 最后修改时间：
	*/
	function save_send_coupon_max($cycle, $data){
		$redis_key = $this->params['channel'] . ":send_coupon_max:" . $cycle;
		$this->redis->zAdd( $redis_key . ":list", $data['coupon'], $data['uid']);
		$this->redis->hmset($redis_key . ":" . $data['uid'], $data);
	}

	/**
	* 函数功能介绍：保存$cycle得到卷数最多的用户排行榜的redis数据
	* @ $cycle 参数说明： day:当日排行(1小时更新一次), week:上周排行(1周更新一次), month:上月排行(1月更新一次), '' or all 总排行(1小时更新一次)
	* REDIS KEY: damigm:ranking:send_coupon_max
	* 创建人: 	Zhou Hailong
	* 创建时间: 2016-01-27 14:27
	* 最后修改人：
	* 最后修改时间：
	*/
	function save_get_coupon_max($cycle, $data){
		$redis_key = $this->params['channel'] . ":get_coupon_max:" . $cycle;
		$this->redis->zAdd( $redis_key . ":list", $data['coupon'], $data['uid']);
		$this->redis->hmset($redis_key . ":" . $data['uid'], $data);
	}

	/**
	* 函数功能介绍：保存$cycle得到币数最多的用户排行榜的redis数据
	* @ $cycle 参数说明： day:当日排行(1小时更新一次), week:上周排行(1周更新一次), month:上月排行(1月更新一次), '' or all 总排行(1小时更新一次)
	* REDIS KEY: damigm:ranking:get_coin_max
	* 创建人: 	Zhou Hailong
	* 创建时间: 2016-01-27 14:27
	* 最后修改人：
	* 最后修改时间：
	*/
	function save_get_coin_max($cycle, $data){
		$redis_key = $this->params['channel'] . ":get_coin_max:" . $cycle;
		$this->redis->zAdd( $redis_key . ":list", $data['coin'], $data['uid']);
		$this->redis->hmset($redis_key . ":" . $data['uid'], $data);
	}

	/**
	* 函数功能介绍：保存$cycle送出币数最多的用户排行榜的redis数据
	* @ $cycle 参数说明： day:当日排行(1小时更新一次), week:上周排行(1周更新一次), month:上月排行(1月更新一次), '' or all 总排行(1小时更新一次)
	* REDIS KEY: damigm:ranking:send_coin_max
	* 创建人: 	Zhou Hailong
	* 创建时间: 2016-01-27 15:37
	* 最后修改人：
	* 最后修改时间：
	*/
	function save_send_coin_max($cycle, $data){
		$redis_key = $this->params['channel'] . ":send_coin_max:" . $cycle;
		$this->redis->zAdd( $redis_key . ":list", $data['coin'], $data['uid']);
		$this->redis->hmset($redis_key . ":" . $data['uid'], $data);
	}
}